﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;

namespace Medianamik.Core.Configuration
{
    public class CodeGenerationConfigElement : ConfigurationElement
    {
        [ConfigurationProperty(ConfigurationPropertyName.CODE_GENERATION_PROVIDER_NAME, DefaultValue = ConfigurationPropertyDefaultValue.DEFAULT_PROVIDER_NAME)]
        public string ProviderName
        {
            get { return (string)base[ConfigurationPropertyName.CODE_GENERATION_PROVIDER_NAME]; }
            set { base[ConfigurationPropertyName.CODE_GENERATION_PROVIDER_NAME] = value; }
        }

        [ConfigurationProperty(ConfigurationPropertyName.CODE_GENERATION_OUTPUT_PATH, DefaultValue = ConfigurationPropertyDefaultValue.DEFAULT_CODE_GENERATION_OUTPUT_PATH)]
        public string OutputPath
        {
            get { return (string)base[ConfigurationPropertyName.CODE_GENERATION_OUTPUT_PATH]; }
            set { base[ConfigurationPropertyName.CODE_GENERATION_OUTPUT_PATH] = value; }
        }


        [ConfigurationProperty(ConfigurationPropertyName.CODE_GENERATION_NAMESPACE, DefaultValue = ConfigurationPropertyDefaultValue.DEFAULT_NAMESPACE)]
        public string Namespace
        {
            get { return (string)base[ConfigurationPropertyName.CODE_GENERATION_NAMESPACE]; }
            set { base[ConfigurationPropertyName.CODE_GENERATION_NAMESPACE] = value; }
        }
        [ConfigurationProperty(ConfigurationPropertyName.CODE_GENERATION_BASEPAGE, DefaultValue = ConfigurationPropertyDefaultValue.DEFAULT_BASEPAGE)]
        public string BasePage
        {
            get { return (string)base[ConfigurationPropertyName.CODE_GENERATION_BASEPAGE ]; }
            set { base[ConfigurationPropertyName.CODE_GENERATION_BASEPAGE ] = value; }
        }

        [ConfigurationProperty(ConfigurationPropertyName.CODE_GENERATION_REFERENCE_ASSEMBLIES)]
        public PathCollection ReferenceAssemblies
        {
            get
            {
                return base[ConfigurationPropertyName.CODE_GENERATION_REFERENCE_ASSEMBLIES] as PathCollection;
               
            }
            set
            {
                base[ConfigurationPropertyName.CODE_GENERATION_REFERENCE_ASSEMBLIES] = value;
            }
           
        }
    }
}
